Skip to content

Conversation

@prishajaiswal75
Copy link
Contributor

@prishajaiswal75 prishajaiswal75 commented Dec 22, 2025

This PR refactors all usages of the deprecated AccountCreateTransaction.set_key() method and replaces them with the appropriate non-deprecated alternatives, ensuring correct behavior and eliminating deprecation warnings.

Changes Made

Examples

Updated all example files across account, token, query, schedule, consensus, transaction, and logger directories.

Replaced AccountCreateTransaction.set_key() with:

  • set_key_without_alias() for standard account creation cases
  • set_key_with_alias() for the EVM alias example
  • Preserved method chaining and original example behavior.

Tests

  1. Updated unit and integration tests that use AccountCreateTransaction to use set_key_without_alias().
  2. Verified that non-deprecated set_key() usages on other transaction types (e.g. AccountUpdateTransaction, Executable, batch transactions) were intentionally left unchanged.

EVM Alias Handling

  1. Refactored account_create_transaction_evm_alias.py to use set_key_with_alias() with automatic alias derivation.
  2. Removed manual to_evm_address() logic and updated comments accordingly.

Verification

Searched the codebase to ensure no remaining usages of AccountCreateTransaction.set_key() remain.
Confirmed that all other transaction types continue to use their valid, non-deprecated set_key() methods.

Related Issue

Fixes #1170

@github-actions
Copy link

Hi, this is WorkflowBot.
Your pull request cannot be merged as it is not passing all our workflow checks.
Please click on each check to review the logs and resolve issues so all checks pass.
To help you:

@prishajaiswal75 prishajaiswal75 changed the title Refactor uses of deprecated set_key method for set_key_without_alias (#1170) fix: replace deprecated AccountCreateTransaction.set_key usage (#1170) Dec 22, 2025
@coderabbitai
Copy link

coderabbitai bot commented Dec 22, 2025

📝 Walkthrough

Walkthrough

Replaces deprecated AccountCreateTransaction.set_key(...) usages with set_key_without_alias(...) across examples and tests; one example switches to set_key_with_alias(...) and changelog/docs updated to document the migration. No other functional changes implied.

Changes

Cohort / File(s) Summary
Changelog & Docs
CHANGELOG.md, docs/sdk_users/running_examples.md
Added changelog entry and updated docs to reflect replacement of set_key() with set_key_without_alias() and introduction/mention of set_key_with_alias().
Account examples
examples/account/*.py, examples/account/account_create_transaction_evm_alias.py
Replaced set_key() with set_key_without_alias() in account examples; account_create_transaction_evm_alias.py now uses set_key_with_alias() and removes manual EVM alias derivation and related error handling.
Consensus & Logger examples
examples/consensus/topic_create_transaction_revenue_generating.py, examples/logger/logging_example.py
Replaced set_key() with set_key_without_alias() in account creation flows.
Query examples
examples/query/*.py
Replaced set_key() with set_key_without_alias() in query-related example account setups (balance, info, receipt, record examples).
Schedule examples
examples/schedule/*.py
Replaced set_key() with set_key_without_alias() across schedule examples (create, delete, info, sign).
Token examples
examples/tokens/*.py
Replaced set_key() with set_key_without_alias() across token-related examples; minor addition of freeze_with in one token example.
Transfer examples
examples/transaction/*.py
Replaced set_key() with set_key_without_alias() in transfer examples (hbar, fungible, nft).
Integration test utilities
tests/integration/utils.py
Updated shared test helper(s) to call set_key_without_alias() during test account creation.
Integration tests
tests/integration/*.py, including account_*, batch_*, query_e2e_test.py, revenue_generating_topics_e2e_test.py, token_*, transaction_*
Replaced set_key() with set_key_without_alias() across integration test fixtures and setups.
Unit tests
tests/unit/account_create_transaction_test.py, tests/unit/executable_test.py
Updated unit tests to use set_key_without_alias() for default cases and added/adjusted tests covering set_key_with_alias() and alias-handling semantics.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~35 minutes

  • Areas to pay extra attention:
    • examples/account/account_create_transaction_evm_alias.py — verify removal of manual EVM derivation and that automatic alias derivation behavior is correct.
    • tests/unit/account_create_transaction_test.py — ensure tests correctly assert new alias semantics and method signatures (both without and with alias).
    • Integration test utilities (tests/integration/utils.py) — confirm fixture changes propagate and do not break dependent tests.

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed Title clearly summarizes the main change: replacing deprecated AccountCreateTransaction.set_key() with non-deprecated alternatives.
Linked Issues check ✅ Passed All objectives from issue #1170 are addressed: deprecated set_key() calls replaced with set_key_without_alias() throughout examples and tests, changelog entry added, and all CI checks verified.
Out of Scope Changes check ✅ Passed All changes are directly scoped to replacing AccountCreateTransaction.set_key() with appropriate alternatives; no unrelated modifications detected.
Docstring Coverage ✅ Passed Docstring coverage is 82.67% which is sufficient. The required threshold is 80.00%.
Description check ✅ Passed The PR description clearly explains the refactoring of deprecated AccountCreateTransaction.set_key() usage, specifying the changes made, methods used, files affected, and related issue.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@prishajaiswal75 prishajaiswal75 changed the title fix: replace deprecated AccountCreateTransaction.set_key usage (#1170) fix: replace deprecated AccountCreateTransaction.set_key usage Dec 22, 2025
@prishajaiswal75
Copy link
Contributor Author

@coderabbitai review

@coderabbitai
Copy link

coderabbitai bot commented Dec 22, 2025

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
examples/tokens/account_allowance_approve_transaction.py (1)

51-57: Critical: Missing freeze_with(client) before execute.

The transaction lifecycle is incomplete. According to SDK requirements, freeze_with(client) must be called before execute(client) to lock the transaction parameters.

🔎 Proposed fix
     account_receipt = (
         AccountCreateTransaction()
         .set_key_without_alias(account_public_key)
         .set_initial_balance(Hbar(1))
         .set_account_memo("Account for token allowance")
+        .freeze_with(client)
         .execute(client)
     )

Note: The migration to set_key_without_alias itself is correct.

tests/integration/account_update_transaction_e2e_test.py (1)

186-186: Replace deprecated AccountCreateTransaction.set_key() with set_key_without_alias() at lines 186, 238, 276, 305, and 383.

The .set_key() method is deprecated. Other instances in this file have already been migrated to .set_key_without_alias() (lines 28, 104, 142, 341, 351). Complete the migration consistently.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3207c68 and db46104.

📒 Files selected for processing (54)
  • CHANGELOG.md
  • docs/sdk_users/running_examples.md
  • examples/account/account_allowance_approve_transaction_hbar.py
  • examples/account/account_allowance_approve_transaction_nft.py
  • examples/account/account_allowance_delete_transaction_hbar.py
  • examples/account/account_allowance_delete_transaction_nft.py
  • examples/account/account_create_transaction.py
  • examples/account/account_create_transaction_evm_alias.py
  • examples/account/account_delete_transaction.py
  • examples/account/account_records_query.py
  • examples/account/account_update_transaction.py
  • examples/consensus/topic_create_transaction_revenue_generating.py
  • examples/logger/logging_example.py
  • examples/query/account_balance_query_2.py
  • examples/query/account_info_query.py
  • examples/query/transaction_get_receipt_query.py
  • examples/query/transaction_record_query.py
  • examples/schedule/schedule_create_transaction.py
  • examples/schedule/schedule_delete_transaction.py
  • examples/schedule/schedule_info_query.py
  • examples/schedule/schedule_sign_transaction.py
  • examples/tokens/account_allowance_approve_transaction.py
  • examples/tokens/token_airdrop_claim_auto.py
  • examples/tokens/token_airdrop_claim_signature_required.py
  • examples/tokens/token_airdrop_transaction.py
  • examples/tokens/token_airdrop_transaction_cancel.py
  • examples/tokens/token_associate_transaction.py
  • examples/tokens/token_create_transaction_freeze_key.py
  • examples/tokens/token_create_transaction_kyc_key.py
  • examples/tokens/token_create_transaction_max_automatic_token_associations_0.py
  • examples/tokens/token_create_transaction_pause_key.py
  • examples/tokens/token_create_transaction_wipe_key.py
  • examples/tokens/token_dissociate_transaction.py
  • examples/tokens/token_grant_kyc_transaction.py
  • examples/tokens/token_reject_transaction_fungible_token.py
  • examples/tokens/token_reject_transaction_nft.py
  • examples/tokens/token_revoke_kyc_transaction.py
  • examples/tokens/token_wipe_transaction.py
  • examples/transaction/transfer_transaction_fungible.py
  • examples/transaction/transfer_transaction_hbar.py
  • examples/transaction/transfer_transaction_nft.py
  • tests/integration/account_info_query_e2e_test.py
  • tests/integration/account_update_transaction_e2e_test.py
  • tests/integration/batch_transaction_e2e_test.py
  • tests/integration/query_e2e_test.py
  • tests/integration/revenue_generating_topics_e2e_test.py
  • tests/integration/token_grant_kyc_transaction_e2e_test.py
  • tests/integration/token_reject_transaction_e2e_test.py
  • tests/integration/token_revoke_kyc_transaction_e2e_test.py
  • tests/integration/token_update_transaction_e2e_test.py
  • tests/integration/transaction_record_query_e2e_test.py
  • tests/integration/utils.py
  • tests/unit/account_create_transaction_test.py
  • tests/unit/executable_test.py
🧰 Additional context used
📓 Path-based instructions (1)
examples/**/*

⚙️ CodeRabbit configuration file

examples/**/*: You are acting as a senior maintainer reviewing SDK examples. Your goal is to ensure examples work verbatim for users who copy-paste them.

Priority 1 - Correctness:

  • Verify transaction lifecycle chain (construction -> freeze_with -> sign -> execute).
  • Ensure freeze_with(client) is called BEFORE signing.
  • Validate that methods referenced actually exist in the hiero_sdk_python codebase.
  • Ensure response validation checks receipt.status against ResponseCode enums (e.g., ResponseCode.SUCCESS).

Priority 2 - Transaction Lifecycle:

  • Check method chaining logic.
  • Verify correct signing order (especially for multi-sig).
  • Ensure explicit .execute(client) calls.
  • Verify response property extraction (e.g., using .token_id, .account_id, .serial_numbers).
  • Ensure error handling uses ResponseCode(receipt.status).name for clarity.

Priority 3 - Naming & Clarity:

  • Enforce role-based naming: operator_id/_key, treasury_account_id/_key, receiver_id/_key.
  • Use _id suffix for AccountId and _key suffix for PrivateKey variables.
  • Validate negative examples explicitly check for failure codes (e.g., TOKEN_HAS_NO_PAUSE_KEY).
  • Ensure logical top-to-bottom flow without ambiguity.

Priority 4 - Consistency:

  • Verify standard patterns: def main(), if __name__ == "__main__":, load_dotenv().
  • IMPORT RULES:
    1. Accept both top-level imports (e.g., from hiero_sdk_python import PrivateKey) and fully qualified imports (e.g., from hiero_sdk_python.crypto.private_key import PrivateKey).
    2. STRICTLY validate that the import path actually exists in the project structure. Compare against other files in /examples or your knowledge of the SDK file tree.
    3. Flag hallucinations immediately (e.g., hiero_sdk_python.keys does not exist).
  • Check for try-except blocks with sys.exit(1) for critical failures.

Priority 5 - User Experience:

  • Ensure comments explain SDK usage patterns (for users,...

Files:

  • examples/tokens/token_airdrop_claim_signature_required.py
  • examples/tokens/token_create_transaction_wipe_key.py
  • examples/account/account_records_query.py
  • examples/tokens/token_airdrop_transaction.py
  • examples/schedule/schedule_info_query.py
  • examples/transaction/transfer_transaction_hbar.py
  • examples/query/transaction_get_receipt_query.py
  • examples/tokens/token_grant_kyc_transaction.py
  • examples/schedule/schedule_create_transaction.py
  • examples/tokens/token_dissociate_transaction.py
  • examples/query/account_balance_query_2.py
  • examples/account/account_allowance_approve_transaction_hbar.py
  • examples/tokens/token_associate_transaction.py
  • examples/account/account_allowance_approve_transaction_nft.py
  • examples/transaction/transfer_transaction_fungible.py
  • examples/account/account_update_transaction.py
  • examples/tokens/token_create_transaction_pause_key.py
  • examples/tokens/token_wipe_transaction.py
  • examples/query/transaction_record_query.py
  • examples/consensus/topic_create_transaction_revenue_generating.py
  • examples/account/account_create_transaction_evm_alias.py
  • examples/tokens/token_create_transaction_max_automatic_token_associations_0.py
  • examples/schedule/schedule_sign_transaction.py
  • examples/account/account_create_transaction.py
  • examples/tokens/token_airdrop_transaction_cancel.py
  • examples/account/account_allowance_delete_transaction_nft.py
  • examples/transaction/transfer_transaction_nft.py
  • examples/tokens/token_create_transaction_kyc_key.py
  • examples/tokens/token_reject_transaction_nft.py
  • examples/schedule/schedule_delete_transaction.py
  • examples/tokens/account_allowance_approve_transaction.py
  • examples/account/account_allowance_delete_transaction_hbar.py
  • examples/tokens/token_create_transaction_freeze_key.py
  • examples/account/account_delete_transaction.py
  • examples/tokens/token_airdrop_claim_auto.py
  • examples/logger/logging_example.py
  • examples/query/account_info_query.py
  • examples/tokens/token_revoke_kyc_transaction.py
  • examples/tokens/token_reject_transaction_fungible_token.py
🧬 Code graph analysis (49)
examples/tokens/token_airdrop_claim_signature_required.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
tests/integration/batch_transaction_e2e_test.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (2)
  • set_key_without_alias (94-107)
  • AccountCreateTransaction (27-380)
src/hiero_sdk_python/transaction/transaction.py (1)
  • batchify (825-840)
examples/tokens/token_create_transaction_wipe_key.py (3)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
tests/unit/conftest.py (1)
  • private_key (54-56)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
examples/account/account_records_query.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/tokens/token_airdrop_transaction.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
examples/schedule/schedule_info_query.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/transaction/transfer_transaction_hbar.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
tests/integration/token_reject_transaction_e2e_test.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (2)
  • set_key_without_alias (94-107)
  • AccountCreateTransaction (27-380)
examples/query/transaction_get_receipt_query.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
tests/integration/account_info_query_e2e_test.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/tokens/token_grant_kyc_transaction.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/schedule/schedule_create_transaction.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
tests/integration/revenue_generating_topics_e2e_test.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
examples/tokens/token_dissociate_transaction.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
examples/query/account_balance_query_2.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/tokens/token_associate_transaction.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/account/account_allowance_approve_transaction_nft.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
examples/transaction/transfer_transaction_fungible.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
examples/account/account_update_transaction.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/tokens/token_create_transaction_pause_key.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/tokens/token_wipe_transaction.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/query/transaction_record_query.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
examples/consensus/topic_create_transaction_revenue_generating.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
tests/integration/utils.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
examples/account/account_create_transaction_evm_alias.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (2)
  • AccountCreateTransaction (27-380)
  • set_key_with_alias (109-135)
examples/tokens/token_create_transaction_max_automatic_token_associations_0.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
examples/schedule/schedule_sign_transaction.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/account/account_create_transaction.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/tokens/token_airdrop_transaction_cancel.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
examples/account/account_allowance_delete_transaction_nft.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
examples/transaction/transfer_transaction_nft.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
tests/integration/transaction_record_query_e2e_test.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/tokens/token_create_transaction_kyc_key.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
tests/integration/query_e2e_test.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/tokens/token_reject_transaction_nft.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
tests/integration/token_update_transaction_e2e_test.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
examples/schedule/schedule_delete_transaction.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/tokens/account_allowance_approve_transaction.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/account/account_allowance_delete_transaction_hbar.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/tokens/token_create_transaction_freeze_key.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
tests/integration/token_grant_kyc_transaction_e2e_test.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
tests/unit/executable_test.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/account/account_delete_transaction.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/tokens/token_airdrop_claim_auto.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/logger/logging_example.py (2)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
src/hiero_sdk_python/crypto/private_key.py (1)
  • public_key (305-309)
examples/query/account_info_query.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
tests/integration/token_revoke_kyc_transaction_e2e_test.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/tokens/token_revoke_kyc_transaction.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
examples/tokens/token_reject_transaction_fungible_token.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (1)
  • set_key_without_alias (94-107)
🪛 Ruff (0.14.8)
examples/account/account_create_transaction_evm_alias.py

51-51: f-string without any placeholders

Remove extraneous f prefix

(F541)

🔇 Additional comments (54)
examples/query/account_info_query.py (1)

55-63: LGTM! Correct migration to non-deprecated method.

The replacement of set_key() with set_key_without_alias() is correct and maintains the expected transaction lifecycle. The method chain properly follows the pattern: construction → configuration → freeze_with → sign → execute. Using the public key (rather than private key) for account creation is appropriate.

examples/tokens/token_create_transaction_wipe_key.py (1)

78-78: LGTM: Correct migration to set_key_without_alias.

The API migration from deprecated set_key() to set_key_without_alias() is correctly applied, preserving method chaining and using the public key appropriately.

examples/schedule/schedule_sign_transaction.py (1)

55-63: LGTM: Correct migration with proper transaction lifecycle.

The migration to set_key_without_alias() is correct, and the transaction lifecycle properly follows the pattern: construction -> freeze_with -> sign -> execute.

examples/account/account_records_query.py (1)

47-54: LGTM: Correct migration to set_key_without_alias.

The API migration is correct. Transaction lifecycle includes freeze_with before execute, with operator signature applied implicitly during execution.

examples/tokens/token_create_transaction_pause_key.py (1)

195-203: LGTM: Correct migration with proper transaction lifecycle.

The migration to set_key_without_alias() is correct, and the transaction properly follows freeze_with -> sign -> execute pattern.

examples/tokens/token_create_transaction_max_automatic_token_associations_0.py (1)

93-101: LGTM: Correct migration to set_key_without_alias.

The API migration is correct with proper transaction lifecycle: freeze_with -> sign before execute.

examples/tokens/token_create_transaction_freeze_key.py (1)

181-188: LGTM: Correct migration with proper transaction lifecycle.

The migration to set_key_without_alias() is correct, following the proper freeze_with -> sign -> execute pattern.

tests/integration/batch_transaction_e2e_test.py (1)

280-301: LGTM: Correct migration to set_key_without_alias in test context.

All three AccountCreateTransaction instances correctly use set_key_without_alias() with the batchify() pattern for batch transaction testing.

examples/tokens/token_airdrop_transaction_cancel.py (1)

53-58: LGTM: Correct migration with proper transaction lifecycle.

The migration to set_key_without_alias() is correct, with the complete transaction lifecycle (freeze_with -> sign -> execute) properly chained on line 58.

examples/tokens/token_associate_transaction.py (1)

76-84: LGTM! Correct migration to set_key_without_alias.

The transaction lifecycle is properly structured: freeze_withsignexecute. The method change from deprecated set_key to set_key_without_alias preserves method chaining and behavior.

examples/tokens/token_airdrop_claim_auto.py (1)

90-99: LGTM! Correct migration to set_key_without_alias.

The transaction lifecycle is properly structured with freeze_withsignexecute. The deprecated method has been correctly replaced while preserving all functionality.

examples/tokens/token_dissociate_transaction.py (1)

55-62: LGTM! Correct migration to set_key_without_alias.

The transaction lifecycle is properly structured with freeze_withsignexecute. The method replacement preserves all functionality.

examples/tokens/token_revoke_kyc_transaction.py (1)

109-116: LGTM! Correct migration to set_key_without_alias.

The transaction lifecycle is properly structured with freeze_withexecute. The operator automatically signs when executing, which is the correct pattern for operator-paid account creation.

tests/integration/utils.py (1)

57-62: LGTM! Correct migration to set_key_without_alias.

The method replacement is correct. The simplified transaction lifecycle is acceptable for test utility functions.

examples/tokens/token_airdrop_claim_signature_required.py (1)

99-108: LGTM! Correct migration to set_key_without_alias.

The transaction lifecycle is properly structured with freeze_withsignexecute. The deprecated method has been correctly replaced.

examples/schedule/schedule_create_transaction.py (1)

45-53: LGTM! Correct migration to set_key_without_alias.

The transaction lifecycle is properly structured with freeze_withsignexecute. The method replacement preserves all functionality and follows SDK best practices.

examples/account/account_delete_transaction.py (1)

42-42: LGTM! Correct migration to non-deprecated API.

The replacement of set_key() with set_key_without_alias() is correct and aligns with the PR's deprecation migration objectives. The transaction lifecycle (freeze → sign → execute) remains intact.

CHANGELOG.md (1)

93-93: LGTM! Clear changelog entry.

The changelog entry accurately documents the migration from the deprecated set_key() method to the new set_key_without_alias() and set_key_with_alias() APIs across examples and tests.

examples/transaction/transfer_transaction_fungible.py (1)

59-59: LGTM! Correct API migration.

The change from set_key() to set_key_without_alias() is correct. The transaction lifecycle (freeze → sign → execute) and error handling remain properly structured.

examples/schedule/schedule_info_query.py (1)

40-40: LGTM! Correct deprecation fix.

The migration to set_key_without_alias() is correctly applied. Transaction flow and response validation are properly maintained.

examples/account/account_allowance_delete_transaction_nft.py (1)

71-71: LGTM! Correct API update.

The replacement of set_key() with set_key_without_alias() is correct and consistent with the repository-wide migration.

examples/tokens/token_wipe_transaction.py (1)

55-55: LGTM! Correct migration.

The change to set_key_without_alias() is correct. The transaction maintains proper lifecycle with freeze_with called before execution.

tests/integration/token_grant_kyc_transaction_e2e_test.py (1)

22-22: LGTM! Consistent test migration.

All three test cases correctly migrate from set_key() to set_key_without_alias(). The test assertions and error validation remain properly structured.

Also applies to: 65-65, 119-119

tests/integration/account_info_query_e2e_test.py (1)

31-31: LGTM! Correct test update.

The migration to set_key_without_alias() is correctly applied in the integration test. Account validation assertions remain intact.

examples/tokens/token_reject_transaction_nft.py (1)

57-62: LGTM - Successful migration to non-deprecated API.

The change from set_key() to set_key_without_alias() correctly updates to the non-deprecated API while preserving the existing behavior and method chaining.

examples/account/account_create_transaction.py (1)

108-114: LGTM - Proper migration with correct transaction lifecycle.

The change to set_key_without_alias() is correct and maintains the proper transaction lifecycle (freeze → sign → execute).

docs/sdk_users/running_examples.md (1)

121-130: LGTM - Documentation correctly updated.

The documentation example now correctly demonstrates the updated API using set_key_without_alias(), maintaining consistency with the actual code examples.

examples/query/transaction_record_query.py (1)

55-60: LGTM - Correct API migration.

The migration to set_key_without_alias() is correct and maintains the existing transaction execution pattern.

examples/tokens/token_grant_kyc_transaction.py (1)

106-111: LGTM - Proper migration maintaining transaction lifecycle.

The change to set_key_without_alias() correctly updates the API while preserving the transaction lifecycle with proper freeze_with() usage.

examples/tokens/token_airdrop_transaction.py (1)

57-64: LGTM - Excellent migration with proper chaining.

The migration to set_key_without_alias() is correct and demonstrates proper method chaining with freeze_with → sign → execute in a single chain.

examples/tokens/token_create_transaction_kyc_key.py (1)

92-99: LGTM - Correct migration with proper transaction flow.

The change to set_key_without_alias() correctly updates the API and maintains the proper transaction lifecycle sequence.

examples/account/account_update_transaction.py (1)

44-52: LGTM - Correct migration for AccountCreateTransaction.

The change to set_key_without_alias() on AccountCreateTransaction is correct. Note that line 110's use of set_key() on AccountUpdateTransaction is intentionally unchanged, as the deprecation only applies to AccountCreateTransaction.

examples/query/transaction_get_receipt_query.py (1)

52-52: LGTM!

The method replacement from set_key to set_key_without_alias is correct and preserves the transaction chaining behavior.

examples/transaction/transfer_transaction_nft.py (1)

59-59: LGTM!

The method replacement is correct and the transaction lifecycle (freeze_with before execute) is properly maintained.

tests/integration/revenue_generating_topics_e2e_test.py (2)

531-531: LGTM!

The method replacement is correct. Direct execution without explicit freeze_with is acceptable in test code as the SDK handles freezing internally.


594-594: LGTM!

The method replacement is correct and consistent with the other account creation in this test file.

examples/account/account_allowance_delete_transaction_hbar.py (1)

43-43: LGTM!

The method replacement is correct and properly chains with the other transaction setters.

examples/transaction/transfer_transaction_hbar.py (1)

51-51: LGTM!

The method replacement is correct and the transaction follows the proper lifecycle pattern (freeze_with before sign before execute).

tests/integration/transaction_record_query_e2e_test.py (1)

25-25: LGTM!

The method replacement is correct and appropriate for the test context.

examples/account/account_allowance_approve_transaction_hbar.py (1)

43-43: LGTM!

The method replacement is correct and maintains the existing transaction construction pattern.

tests/integration/query_e2e_test.py (1)

25-25: LGTM!

All method replacements are correct and consistent throughout the test file. The usage of set_key_without_alias properly replaces the deprecated set_key method.

Also applies to: 75-75, 132-132, 171-171, 217-217

examples/account/account_allowance_approve_transaction_nft.py (1)

69-69: LGTM! Correct migration to set_key_without_alias.

The refactoring correctly replaces the deprecated set_key() with set_key_without_alias(), maintaining the same behavior and method chaining pattern. The method exists in the SDK and the transaction lifecycle is correct for direct execution.

examples/schedule/schedule_delete_transaction.py (1)

52-52: LGTM! Correct migration with proper transaction lifecycle.

The refactoring correctly uses set_key_without_alias() and maintains the proper transaction lifecycle: freeze_with(client) is called before signing, which is the correct order.

examples/query/account_balance_query_2.py (1)

59-59: LGTM! Clean refactoring of deprecated method.

The migration to set_key_without_alias() is correct and maintains the same behavior. Direct execution without freeze_with is an acceptable pattern for simple account creation.

examples/logger/logging_example.py (1)

107-107: LGTM! Correct refactoring with proper transaction lifecycle.

The change correctly uses set_key_without_alias() and the transaction follows the proper lifecycle pattern with freeze_with called before sign.

tests/integration/token_revoke_kyc_transaction_e2e_test.py (1)

23-23: LGTM! Consistent test migration to set_key_without_alias.

All three test cases correctly migrate from the deprecated set_key() to set_key_without_alias(). The refactoring is consistent across the test suite and maintains the expected behavior.

Also applies to: 75-75, 127-127

tests/unit/executable_test.py (1)

55-55: LGTM! Comprehensive unit test migration.

All nine instances across the unit tests correctly use set_key_without_alias(). The refactoring maintains test behavior and covers all the retry/error handling scenarios properly.

Also applies to: 78-78, 118-118, 155-155, 191-191, 222-222, 256-256, 294-294, 410-410

examples/consensus/topic_create_transaction_revenue_generating.py (1)

67-67: LGTM! Correct refactoring in revenue-generating topic example.

The migration to set_key_without_alias() is correct and maintains the same behavior for account creation in this complex example demonstrating custom fees.

examples/tokens/token_reject_transaction_fungible_token.py (1)

57-57: LGTM! Correct refactoring in token rejection example.

The change correctly uses set_key_without_alias() and maintains the same behavior. The transaction pattern is appropriate for the fungible token rejection demonstration.

examples/account/account_create_transaction_evm_alias.py (1)

56-56: LGTM!

Correctly uses set_key_with_alias() to automatically derive the EVM address alias from the ECDSA public key.

tests/integration/token_reject_transaction_e2e_test.py (1)

116-116: LGTM!

All instances correctly updated to use set_key_without_alias(), maintaining consistency across the test file.

Also applies to: 177-177, 883-883, 903-903

tests/integration/account_update_transaction_e2e_test.py (1)

28-28: LGTM!

These instances correctly use set_key_without_alias() as per the PR objectives.

Also applies to: 104-104, 142-142, 341-341, 351-351

tests/unit/account_create_transaction_test.py (1)

45-45: LGTM!

These instances correctly migrate to set_key_without_alias() for non-alias scenarios, consistent with the PR objectives.

Also applies to: 70-70, 105-105, 170-170, 237-237, 334-334, 360-360, 386-386, 394-394

tests/integration/token_update_transaction_e2e_test.py (1)

113-113: LGTM!

Both instances correctly updated to use set_key_without_alias().

Also applies to: 177-177

@github-actions
Copy link

[commit-verification-bot]
Hi, this is VerificationBot.
Your pull request cannot be merged as it has unverified commits.
View your commit verification status: Commits Tab.

To achieve verified status, please read:

Remember, you require a GPG key and each commit must be signed with:
git commit -S -s -m "Your message here"

Thank you for contributing!

From the Hiero Python SDK Team

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (5)
examples/account/account_create_transaction_evm_alias.py (1)

66-68: Add receipt validation for correctness and user education.

The example directly accesses response.account_id without retrieving the receipt or validating the transaction status. Per Priority 1 guidelines, examples should demonstrate the complete pattern: get receipt → validate status → extract result.

🔎 Recommended pattern with receipt validation

First, add ResponseCode to the imports at the top of the file:

 from hiero_sdk_python import (
     Client,
     PrivateKey,
     AccountCreateTransaction,
     AccountInfoQuery,
     Network,
     AccountId,
     Hbar,
+    ResponseCode,
 )

Then update the execution and validation:

-        # Execute the transaction
-        response = transaction.execute(client)
-        new_account_id = response.account_id
-        print(f"✅ Account created with ID: {new_account_id}\n")
+        # Execute the transaction and get receipt
+        response = transaction.execute(client)
+        receipt = response.get_receipt(client)
+        
+        # Validate transaction success
+        if receipt.status != ResponseCode.SUCCESS:
+            print(f"❌ Transaction failed with status: {ResponseCode(receipt.status).name}")
+            sys.exit(1)
+        
+        new_account_id = receipt.account_id
+        print(f"✅ Account created with ID: {new_account_id}\n")
examples/tokens/token_create_transaction_wipe_key.py (2)

117-123: Critical: Missing freeze_with(client) before execute(client).

The transaction lifecycle is incomplete. Per SDK requirements, freeze_with(client) must be called before execute(client). This will fail at runtime.

🔎 Proposed fix
     transfer_tx = (
         TransferTransaction()
         .add_token_transfer(token_id, client.operator_account_id, -amount)
         .add_token_transfer(token_id, recipient_id, amount)
+        .freeze_with(client)
     )
 
     receipt_transfer = transfer_tx.execute(client)

315-319: Critical: Missing freeze_with(client) before execute(client).

The NFT transfer transaction is missing freeze_with(client) in its lifecycle. This must be called before execute(client).

🔎 Proposed fix
     transfer_tx = (
         TransferTransaction()
         .add_nft_transfer(NftId(nft_token_id, serial_number), operator_id, user_id)
+        .freeze_with(client)
         .execute(client)
     )
tests/unit/account_create_transaction_test.py (2)

329-336: Critical: Non-ECDSA key used with set_key_with_alias().

Line 329 generates an Ed25519 key via PrivateKey.generate(), but line 334 calls set_key_with_alias(public_key). According to test_create_account_transaction_set_key_with_alias_non_ecdsa_key (lines 308-324), set_key_with_alias() raises ValueError when used with non-ECDSA keys.

This test will fail at runtime.

🔎 Proposed fix

Either use set_key_without_alias() if no alias derivation is needed:

-    public_key = PrivateKey.generate().public_key()
+    public_key = PrivateKey.generate().public_key()
     evm_address = PrivateKey.generate_ecdsa().public_key().to_evm_address()
 
     tx = (
         AccountCreateTransaction()
-        .set_key_with_alias(public_key)
+        .set_key_without_alias(public_key)
         .set_alias(evm_address)
     )

Or generate an ECDSA key if alias derivation is intended:

-    public_key = PrivateKey.generate().public_key()
+    public_key = PrivateKey.generate_ecdsa().public_key()
     evm_address = PrivateKey.generate_ecdsa().public_key().to_evm_address()

349-362: Critical: Same non-ECDSA key issue.

Line 352 generates an Ed25519 key, but line 360 calls set_key_with_alias(public_key), which requires ECDSA keys. This test will fail at runtime with the same issue as the previous test.

🔎 Proposed fix
-    public_key = PrivateKey.generate().public_key()
+    public_key = PrivateKey.generate().public_key()
     evm_address = PrivateKey.generate_ecdsa().public_key().to_evm_address()
 
     evm_string = evm_address.to_string()
     alias_str = "0x" + evm_string if with_prefix else evm_string
 
     tx = (
         AccountCreateTransaction()
-        .set_key_with_alias(public_key)
+        .set_key_without_alias(public_key)
         .set_alias(alias_str)
     )
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between db46104 and ffdca53.

📒 Files selected for processing (3)
  • examples/account/account_create_transaction_evm_alias.py
  • examples/tokens/token_create_transaction_wipe_key.py
  • tests/unit/account_create_transaction_test.py
🧰 Additional context used
📓 Path-based instructions (1)
examples/**/*

⚙️ CodeRabbit configuration file

examples/**/*: You are acting as a senior maintainer reviewing SDK examples. Your goal is to ensure examples work verbatim for users who copy-paste them.

Priority 1 - Correctness:

  • Verify transaction lifecycle chain (construction -> freeze_with -> sign -> execute).
  • Ensure freeze_with(client) is called BEFORE signing.
  • Validate that methods referenced actually exist in the hiero_sdk_python codebase.
  • Ensure response validation checks receipt.status against ResponseCode enums (e.g., ResponseCode.SUCCESS).

Priority 2 - Transaction Lifecycle:

  • Check method chaining logic.
  • Verify correct signing order (especially for multi-sig).
  • Ensure explicit .execute(client) calls.
  • Verify response property extraction (e.g., using .token_id, .account_id, .serial_numbers).
  • Ensure error handling uses ResponseCode(receipt.status).name for clarity.

Priority 3 - Naming & Clarity:

  • Enforce role-based naming: operator_id/_key, treasury_account_id/_key, receiver_id/_key.
  • Use _id suffix for AccountId and _key suffix for PrivateKey variables.
  • Validate negative examples explicitly check for failure codes (e.g., TOKEN_HAS_NO_PAUSE_KEY).
  • Ensure logical top-to-bottom flow without ambiguity.

Priority 4 - Consistency:

  • Verify standard patterns: def main(), if __name__ == "__main__":, load_dotenv().
  • IMPORT RULES:
    1. Accept both top-level imports (e.g., from hiero_sdk_python import PrivateKey) and fully qualified imports (e.g., from hiero_sdk_python.crypto.private_key import PrivateKey).
    2. STRICTLY validate that the import path actually exists in the project structure. Compare against other files in /examples or your knowledge of the SDK file tree.
    3. Flag hallucinations immediately (e.g., hiero_sdk_python.keys does not exist).
  • Check for try-except blocks with sys.exit(1) for critical failures.

Priority 5 - User Experience:

  • Ensure comments explain SDK usage patterns (for users,...

Files:

  • examples/tokens/token_create_transaction_wipe_key.py
  • examples/account/account_create_transaction_evm_alias.py
🧬 Code graph analysis (3)
tests/unit/account_create_transaction_test.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (4)
  • set_key_without_alias (94-107)
  • AccountCreateTransaction (27-380)
  • set_key_with_alias (109-135)
  • set_alias (220-244)
examples/tokens/token_create_transaction_wipe_key.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (2)
  • AccountCreateTransaction (27-380)
  • set_key_without_alias (94-107)
examples/account/account_create_transaction_evm_alias.py (1)
src/hiero_sdk_python/account/account_create_transaction.py (2)
  • AccountCreateTransaction (27-380)
  • set_key_with_alias (109-135)
🪛 Ruff (0.14.8)
tests/unit/account_create_transaction_test.py

388-388: pytest.raises(ValueError) is too broad, set the match parameter or use a more specific exception

(PT011)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Codacy Static Code Analysis
🔇 Additional comments (9)
examples/account/account_create_transaction_evm_alias.py (1)

54-58: LGTM: Correct migration to set_key_with_alias.

The refactoring properly replaces the deprecated set_key() + manual alias derivation with set_key_with_alias(public_key), which automatically derives the EVM address alias from the provided ECDSA public key. Method chaining and transaction flow are preserved correctly.

examples/tokens/token_create_transaction_wipe_key.py (1)

38-38: NftId import and constructor usage are correct.

The import from hiero_sdk_python import NftId is valid (exported at top-level via src/hiero_sdk_python/__init__.py). The constructor call NftId(token_id, serial_number) on line 317 matches the signature correctly.

tests/unit/account_create_transaction_test.py (7)

43-48: LGTM! Correct migration to set_key_without_alias().

The update correctly replaces the deprecated set_key() method with set_key_without_alias() for this standard account creation test case. The method chaining and test logic remain intact.


68-74: LGTM! Correct API usage for scheduled transaction test.

The migration to set_key_without_alias() is appropriate for this schedulable transaction test scenario.


103-108: LGTM! Appropriate method for signing test.

The change correctly uses set_key_without_alias() for this transaction signing test.


168-172: LGTM! Integration test correctly updated.

The migration to set_key_without_alias() is correct for this integration test scenario.


188-193: LGTM! Correct method usage.

The update to set_key_without_alias() is appropriate for this error-handling test.


235-239: LGTM! Appropriate for this test scenario.

The change to set_key_without_alias() is correct for testing max_automatic_token_associations.


391-397: LGTM! Correct method usage.

The migration to set_key_without_alias() is appropriate for this type validation test.

@prishajaiswal75
Copy link
Contributor Author

Hi! 👋

Just wanted to check on scope before making further changes.
This PR addresses issue #1170 by migrating deprecated
AccountCreateTransaction.set_key() usage to the non-deprecated
alternatives across examples and tests.
Some of the additional suggestions from CodeRabbit (receipt validation,
example cleanup, and key-type enforcement in tests) are valid improvements,
but they appear to be outside the scope of the deprecation migration itself.
How do i proceed?

@exploreriii
Copy link
Contributor

Hi that is ok, please focus on the issue, and if there is a need to correct anything else, I can help to create a new issue (or you can, if you think it is important). Some of its feedback was incorrect, for example, it is not a critical issue that it is not signing, because .execute will do that anyway with the operator.

Copy link
Contributor

@exploreriii exploreriii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @prishajaiswal75
Excellent work here! Thank you so much for doing all this

I think you have replaced the outdated method with the new method, but you have not removed the deprecated set_key method. I like this approach because removing set_key will break virtually every user, even though we have had this deprecation message.

So this PR just nudges people to use the new methods, but does not change the availability of the original set_key method if they really want to do that.

That is good - i think it will give us more time to consider how to handle this sensitive change.

I have left some minor feedback - but generally I like this.

I will recommend parking this PR for a bit of time to wait for @manishdait and @nadineloepfe to feedback as it is a sensitive topic.

Once you have completed the minor feedbakc, please feel free to sign up to another issue if you'd like, while you wait

Thank you

@exploreriii exploreriii marked this pull request as draft December 22, 2025 16:07
@aceppaluni
Copy link
Contributor

aceppaluni commented Dec 27, 2025

Thanks for the refactor!
I agree with the approach and with keeping the deprecated set_key() method for now while nudging users toward the new APIs.

While reviewing the PR, I noticed a blocking correctness issue in the unit tests that is currently causing CI failures:

set_key_with_alias() derives an EVM alias internally via to_evm_address(), which only works for ECDSA secp256k1 keys.
Several tests currently call this method using keys generated via PrivateKey.generate() (Ed25519), which correctly raises:

ValueError: Cannot derive an EVM address from an Ed25519 key

To keep this PR within scope, I’d suggest one of the following:

  • Update tests that use set_key_with_alias() to generate keys via PrivateKey.generate_ecdsa() or
  • Switch to set_key_without_alias() and set the alias explicitly.

No rush as this PR is waiting for additional reviews :)
This is looking great!

@github-actions
Copy link

Hi, this is MergeConflictBot.
Your pull request cannot be merged because it contains merge conflicts.

Please resolve these conflicts locally and push the changes.

To assist you, please read:

Thank you for contributing!

@github-actions
Copy link

github-actions bot commented Jan 2, 2026

Hi @prishajaiswal75,

This pull request has had no commit activity for 10 days. Are you still working on the issue? please push a commit to keep the PR active or it will be closed due to inactivity.
Reach out on discord or join our office hours if you need assistance.

From the Python SDK Team

@manishdait
Copy link
Contributor

Hi @prishajaiswal75 are you still working on this

@prishajaiswal75
Copy link
Contributor Author

prishajaiswal75 commented Jan 4, 2026 via email

Copy link
Contributor

@exploreriii exploreriii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hI @prishajaiswal75
thank you for picking this up again and going through all that extra effort resolving the conflicts!

We have one outstanding issue with your signing
looking at:
https://github.com/hiero-ledger/hiero-sdk-python/pull/1195/commits

it looks like you are trying to resign a previous commit from another person
I'm not sure exactly what happened here, so its hard for me to give you a concrete guide to fix this

Maybe you can try a rebase and a soft revert
git reset --soft HEAD~n
git reset main -S

i don't know whether to go back 1 commit or 2 commits, maybe you'll need to try both
would recommend creating a back up branch!

@prishajaiswal75
Copy link
Contributor Author

Closing this PR and reopening with a clean branch due to polluted commit history.

@prishajaiswal75
Copy link
Contributor Author

prishajaiswal75 commented Jan 6, 2026 via email

@prishajaiswal75
Copy link
Contributor Author

prishajaiswal75 commented Jan 6, 2026 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Intermediate]: Refactor uses of deprecated set_key method for set_key_without_alias

5 participants